package ${targetPackage};

import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
*
*  T：表示与table表对应的实体类（Entity）
   E：表示Entity对应的Example类
   PK：表示可能会用到主键 (比如Integer等)
* @author 孤傲苍狼
*
*/
public interface BaseMapper<T, E, PK extends Serializable> {

        int countByExample(E example);

        int deleteByExample(E example);

        int deleteByPrimaryKey(PK pk);

        int insert(T record);

        int insertSelective(T record);

        List<T> selectByExample(E example);

        T selectByPrimaryKey(PK pk);

        int updateByExampleSelective(@Param("record") T record, @Param("example") E example);

        int updateByExample(@Param("record") T record, @Param("example") E example);

        int updateByPrimaryKeySelective(T record);

        int updateByPrimaryKey(T record);

        int insertBatchSelective(List<T> records);

        int updateBatchByPrimaryKeySelective(List<T> records);
}
